[アップデート] Amazon ECR でリージョンあたりに作成可能なリポジトリの上限数がデフォルトで 100,000 リポジトリになりました
こんにちは!AWS 事業本部コンサルティング部のたかくに(@takakuni_)です。
Amazon ECR でリージョンあたりに作成可能なリポジトリの上限数がデフォルトで 100,000 リポジトリになりました。
以前は 10,000 リポジトリがデフォルト上限数で、 10,000 リポジトリを超える場合は Service Quotas から追加リクエストが必要でした。
今回のアップデートで 100,000 リポジトリまでデフォルト値が引き上がり、100,000 リポジトリ以上必要になった場合に追加のリクエストを送る形式になりました。
Amazon Elastic Container Registry (ECR) now supports a 10x increase in the default limit for repositories per region per account to 100,000, up from the previous limit of 10,000. This change better aligns with your growth needs and saves you time from not having to request limit increases till 100,000 repositories. You still have the flexibility to adjust the new limit and request additional increases if you require more than 100,000 repositories per registry.
日本語反映前のドキュメント
なお、今回の更新はすでにアカウントに適用されているようです。
The new limit increase is already applied to your current registries and is available in all AWS commercial and Gov Cloud (US) regions.
Service Quotas を眺めてみる
早速 Service Quotas を眺めてみましょう。確かに 100,000 の巨大な数字になっていますね。(素晴らしい)
100,000 リポジトリ作ってみたい人生だった(道半ばです)
「100,000 リポジトリデフォルトで作れるようになったよ!」とアナウンスがあれば、作成したくなるのが 人のさが ではないでしょうか。と言うわけで 100,000 リポジトリ作ってみます。
コストの確認
まずは ECR に発生するコストを確認しましょう。1 円掛かれば 100,000 円です。
東京リージョンの ECR には Storage, Data transferred の 2 つの料金が発生します。
- Storage
- $0.10 per GB / month
- Data transferred
- Data Transfer IN
- All data transfer in $0.00 per GB
- Data Transfer OUT
- Next 9.999 TB / month in $0.114 per GB
- Next 40 TB / month in $0.089 per GB
- Next 100 TB / month in $0.086 per GB
- Greater than 150 TB / month in $0.084 per GB
- Data Transfer IN
今回はリポジトリを 100,000 リポジトリ作るだけなので、 ECR の費用は発生しなさそうですね。
AWS Config
ECR リポジトリは AWS Config で収集可能なリソースになります。
今回 100,000 リポジトリ作成する際に、意図しない課金を防ぐために記録の除外を行います。
なお、 AWS Config の継続的な記録頻度を利用している場合、1 リポジトリあたり $0.003 ドル発生するため、 100,000 リポジトリ換算で $300 発生することになります。
もし試してみたい場合は、リポジトリ削除時も除外設定されているか合わせて確認してください。
AWS ECR Repository が「記録から除外」となっていれば OK です。
ECR リポジトリの作成
では、本題の 100,000 リポジトリ作成します。今回は HashiCorp Terraform を利用します。
なんと 18 行で書けます。
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "5.78.0"
}
}
}
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_ecr_repository" "this" {
count = 100000
name = "ecr-repo-${count.index}"
}
それでは terraform apply
をして試してみます。
--parallelism
を 10,000 にしてみましたが、ここまで来ると果たして効果があるのでしょうか。
time terraform apply --auto-approve --parallelism 10,000
動画で表現できないのが残念ですが、非常に高速に ECR リポジトリが作成されます。
結果
Terraform のデプロイに IAM ロールを利用している関係上、セッション切れで 10 万には到達できませんでした。もっと改良が必要そうです。
ただ、規定の 10,000 リポジトリは超えたため、ひとまずよしとします。(10 万リポジトリ作れた追記します。)
AWS Config による利用費用高騰も発生していなさそうでしたので、良さそうです。
まとめ
以上、「Amazon ECR でリージョンあたりに作成可能なリポジトリの上限数がデフォルトで 100,000 リポジトリになりました。」でした。
100,000 リポジトリ作りたくなるほどのケースを私は遭遇したことないですが、頭の片隅に置いておきたいと思います。
AWS 事業本部コンサルティング部のたかくに(@takakuni_)でした!